#pragma once
#include "MyDef.h"
#include "FilterTable1.h"
#include "FilterTable2.h"
#include "list"
using namespace std;

class SingleGrid
{
public:

	SingleGrid(void);
	SingleGrid(int digit);
	~SingleGrid(void);

	int m_nDigit;
	int m_nX;
	int m_nY;
	FilterTable2 m_Table;

	typedef list<int> TypeTeamIndex;
	TypeTeamIndex m_TeamIndex;

	SudokuSolver *m_pOwner;

	int SetCoord(int x, int y);

	friend ostream &operator<<(ostream& os, const SingleGrid &sg);
	bool IsProb(int digit);
	int Achieve(int digit);
	int DropDigit(int digit);
};
